<!doctype html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Eloquent JavaScript</title>
  <link rel=stylesheet href="css/ejs.css">
  <style>
    article { display: flex; margin: 0 2em; flex-wrap: wrap; max-width: none; max-width: calc(38em + 500px); }
    #cover { flex-basis: 480px; max-width: 35em; flex-grow: 1; margin-right: 3em; }
    #contents { flex-basis: 500px; flex-grow: 1; max-width: 35em;  }
    #links { flex-basis: 100%; max-width: 35em; }
    li.contents-intro:before { display: none; }
    .toc h3 { float: right; font-family: inherit; margin: 0; font-weight: normal; font-size: 90%; }
    @media screen and (max-width: 585px) { .toc h3 { display: none }}
    @media screen and (max-width: 500px) { #cover { margin-right: 0 } article { margin: 0 } }
    ul.links { list-style-type: circle; }
    img.logo { vertical-align: text-top; padding: 0px 4px; border: 0; }
  </style>
</head>

<article>
<div id=cover>

  <p style="margin: 1em 0">
    <a href="https://mybook.to/ejs">
      <img src="img/cover.jpg" alt="Cover image" style="border: 1px solid black; max-width: 100%; box-shadow: 4px 4px 7px rgba(0, 0, 0, 0.4)">
    </a>
  </p>

  <h1>Eloquent JavaScript<div style="font-size: 70%">3rd edition (2018)</div></h2>

  <p>This is a book about JavaScript, programming, and the wonders of
  the digital. You can read it online here, or buy your own
  <a href="https://mybook.to/ejs">paperback copy</a>.</p>

  <p>Written by Marijn Haverbeke.</p>

  <div style="font-size: 80%">
  <p>Licensed under
  a <a href="https://creativecommons.org/licenses/by-nc/3.0/">Creative
  Commons attribution-noncommercial license</a>. All code in this book
  may also be considered licensed under
  an <a href="https://eloquentjavascript.net/code/LICENSE">MIT license</a>.</p>

  <p>Illustrations by various artists: Cover and chapter illustrations
  by <a href="http://madalinatantareanu.com/">Madalina Tantareanu</a>.
  Pixel art in Chapters 7 and 16 by Antonio Perdomo Pastor. Regular
  expression diagrams in Chapter 9 generated
  with <a href="https://regexper.com">regexper.com</a> by Jeff
  Avallone. Village photograph in Chapter 11 by Fabrice Creuzot. Game
  concept for Chapter 16 by <a href="http://lessmilk.com">Thomas
  Palef</a>.</p>

  <p>The third edition was made possible
  by <a href="backers3.html">325 financial backers</a>, most
  notably <a href="https://nextjournal.com/"><img src="img/nextjournal.png"
  alt="Nextjournal" class=logo></a> and <a href="https://www.holbertonschool.com/"><img src="img/holberton.png" alt="Holberton School" class=logo></a>. The second edition
  was supported by <a href="backers.html">454 backers</a>, with
  significant contributions
  from <a href="https://www.mozilla.org/en-US/"><img src="img/mozilla_mini.png"
  alt=Mozilla
  class=logo></a>, <a href="https://www.hackreactor.com/"><img src="img/hack_reactor_mini.png"
  alt="Hack Reactor" class=logo></a>,
  and <a href="https://www.ghostery.com/"><img src="img/ghostery_mini.png"
  alt="Ghostery" class=logo></a>.</p>
  </div>

</div>

<div id=contents>

  <h2>Contents</h2>

  <ol class=toc>
    <li class="contents-intro"><a href="00_intro.html">Introduction</a>
    <li>
      <h3>(Part 1: Language)</h3>
      <a href="01_values.html">Values, Types, and Operators</a>
    </li>
    <li><a href="02_program_structure.html">Program Structure</a>
    <li><a href="03_functions.html">Functions</a>
    <li><a href="04_data.html">Data Structures: Objects and Arrays</a>
    <li><a href="05_higher_order.html">Higher-order Functions</a>
    <li><a href="06_object.html">The Secret Life of Objects</a>
    <li><a href="07_robot.html">Project: A Robot</a>
    <li><a href="08_error.html">Bugs and Errors</a>
    <li><a href="09_regexp.html">Regular Expressions</a>
    <li><a href="10_modules.html">Modules</a>
    <li><a href="11_async.html">Asynchronous Programming</a>
    <li><a href="12_language.html">Project: A Programming Language</a>
    <li>
      <h3>(Part 2: Browser)</h3>
      <a href="13_browser.html">JavaScript and the Browser</a>
    </li>
    <li><a href="14_dom.html">The Document Object Model</a>
    <li><a href="15_event.html">Handling Events</a>
    <li><a href="16_game.html">Project: A Platform Game</a>
    <li><a href="17_canvas.html">Drawing on Canvas</a>
    <li><a href="18_http.html">HTTP and Forms</a>
    <li><a href="19_paint.html">Project: A Pixel Art Editor</a>
    <li>
      <h3>(Part 3: Node)</h3>
      <a href="20_node.html">Node.js</a>
    </li>
    <li><a href="21_skillsharing.html">Project: Skill-Sharing Website</a>
  </ol>

</div>

<div id=links>

  <p>A paper version of Eloquent JavaScript, including an additional
  chapter, is being brought out
  by <a href="http://www.nostarch.com/ejs3">No Starch Press</a>.</p>

  <h2>Other pages</h2>

  <ul class="links">
    <li><a href="code">Code sandbox and exercise solutions</a></li>
    <li><a href="errata.html">Errata for the paper book</a></li>
    <li><a href="Eloquent_JavaScript.pdf">This book as a single PDF file</a> (&amp; <a href="Eloquent_JavaScript_small.pdf">small version for mobile</a>)</li>
    <li><a href="https://eloquentjavascript.net/Eloquent_JavaScript.epub">This book as an EPUB file</a></li>
    <li><a href="https://eloquentjavascript.net/Eloquent_JavaScript.mobi">This book as a MOBI (Kindle) file</a></li>
    <li><a href="https://eloquentjavascript.net/1st_edition">The first edition of the book</a></li>
    <li><a href="https://eloquentjavascript.net/2nd_edition">The second edition of the book</a></li>
  </ul>

  <h2>Translations</h2>

  <h3>Third Edition</h3>

  <ul class=translations>
    <li><a href="http://eloquentjs.ir/">فارسی (Persian)</a></li>
    <li><a href="https://eloquentjs-es.thedojo.mx/">Español (Spanish, partial)</a></li>
  </ul>

  <h3>Second Edition</h3>

  <ul class=translations>
    <li><a href="https://rabahboudia.gitbooks.io/arabic-eloquent-js/content/index.html">عَرَبِيّ‎ (Arabic)</a></li>
    <li><a href="https://to6esko.github.io/">Български (Bulgarian)</a></li>
    <li><a href="https://braziljs.github.io/eloquente-javascript/">Português (Portuguese)</a></li>
    <li><a href="https://karmazzin.gitbooks.io/eloquentjavascript_ru/content/">Русский (Russian)</a></li>
  </ul>

</div>
</article>
